250 IF LL=2 THEN FOR GG=1 TO LP*16:LINE(WX(WC)+9,WY(WC)+20+6/LP*GG)-(WX(WC)+104,WY(WC)+20+6/LP*GG),PSET,[0,0,96]:LINE(WX(WC)+9+6/LP*GG,WY(WC)+20)-(WX(WC)+9+6/LP*GG,WY(WC)+115),PSET,[0,0,96]:NEXT
260 IF LL>0 THEN FOR GG=1 TO LP*2-1:LINE(WX(WC)+9,WY(WC)+20+GG*48/LP)-(WX(WC)+104,WY(WC)+20+48/LP*GG),PSET,[128,128,128],,&HAAAA:LINE(WX(WC)+9+48/LP*GG,WY(WC)+20)-(WX(WC)+9+GG*48/LP,WY(WC)+115),PSET,[128,128,128],,&HAAAA:NEXT
330 FOR G=0 TO 4:SYMBOL(50+G*48,1),KMID$("ファイル ルーペ カラー 編集 その他",G*4+1,4),.75!,.75!,0:LINE(50+G*48,0)-(98+G*48,15),PSET,[64,64,64],B:NEXT:LINE(291,1)-(319,14),PSET,[96,96,96],BF:SYMBOL(292,1),"全終",.75!,.75!,0
400 IF LL=2 AND WC=0 THEN FOR GG=1 TO LP*16-1:LINE(WX(WC)+9,WY(WC)+20+6/LP*GG)-(WX(WC)+104,WY(WC)+20+6/LP*GG),PSET,[0,0,96]:LINE(WX(WC)+9+6/LP*GG,WY(WC)+20)-(WX(WC)+9+6/LP*GG,WY(WC)+115),PSET,[0,0,96]:NEXT
410 IF LL>0 AND WC=0 THEN FOR GG=1 TO LP*2-1:LINE(WX(WC)+9,WY(WC)+20+GG*48/LP)-(WX(WC)+104,WY(WC)+20+48/LP*GG),PSET,[128,128,128],,&HAAAA:LINE(WX(WC)+9+48/LP*GG,WY(WC)+20)-(WX(WC)+9+GG*48/LP,WY(WC)+115),PSET,[128,128,128],,&HAAAA:NEXT
470 FOR A=0 TO 2:LINE(CX+4+A*30,CY+14)-(CX+30+A*30,CY+22),PSET,0,BF,[CO(A,0),CO(A,1),CO(A,2)]:NEXT:FOR A=0 TO 2:LINE(CX+2,CY+24+A*10)-(CX+91,CY+32+A*10),PSET,0,BF,3-A-(A=0):NEXT
480 FOR A=0 TO 2:LINE(CX+2+CO(2,A)/3,CY+24+A*10)-(CX+5+CO(2,A)/3,CY+32+A*10),PSET,7,B:NEXT:RETURN
1030 CX=MOUSE(0)-CCX:CY=MOUSE(1)-CCY:FOR A=0 TO 1:SCREEN 1,A:LINE(CX,CY)-(CX+W2X(0)-1,CY+W2Y(0)-1),XOR,7,B:NEXT:FOR A=0 TO 1:SCREEN 1,A:LINE(CX,CY)-(CX+W2X(0)-1,CY+W2Y(0)-1),XOR,7,B:NEXT
1040 IF MOUSE(2,C1)=-1 THEN 1030
1050 IF CX<0 THEN CX=0 ELSE IF CX+W2X(0)>319 THEN CX=319-W2X(0)
1060 IF CY<17 THEN CY=17 ELSE IF CY+W2Y(0)>239 THEN CY=239-W2Y(0)
1070 WX(0)=CX:WY(0)=CY:GOSUB *表示:GOTO *MAIN
1080 ON WC(WC) GOTO *ルーペ,*カラー,*ファイル,*その他,*編集
1090 GOTO *MAIN
1100 *ルーペ
1110 CC=6/LP:IF CCX>8 AND CCY>19 AND CCX<105 AND CCY<116 THEN
1120 SCREEN 1,0:Y1=CO(C1,0):Y2=CO(C1,1):Y3=CO(C1,2):CX=INT((CCX-9)/6*LP):CY=INT((CCY-20)/6*LP):IF PA=1 OR PA=3 THEN PSET(C1X+CX,C1Y+CY),[Y1,Y2,Y3]
1130 IF PA=5 THEN
1140 CX=C1X+CX:CY=C1Y+CY:C3=PEEK([&H1C]CX*2+CY*1024):C2=PEEK([&H1C]CX*2+CY*1024+1):B=INT(C3 AND 31)*8:G=((C2 AND 127)-(C2 AND 3))*2:R=INT((INT(C2 AND 3)*64+INT(C3/8)*2)/8)*8:CO(C1,0)=G:CO(C1,1)=R:CO(C1,2)=B
1150 SCREEN 1,1:CC=-1:FOR B=0 TO 9:IF WC(B)=2 THEN CC=B
1160 NEXT:IF CC=-1 THEN *MAIN
1170 IF CC=0 THEN 1210
1180 C2=1:C3=1:CX=WX(CC)+4+C1*30:CY=WY(CC)+14:FOR B=0 TO CC-1:IF WX(B)<CX AND WY(B)<CY AND WX(B)+W2X(B)>CX+26 AND WY(B)+W2Y(B)>CY+8 THEN C2=0:B=9
1190 IF C2=1 AND WY(B)+W2Y(B)>CY+55 THEN FOR A=0 TO 2:LINE(WX(CC)+2+CO(2,A)/3,WY(CC)+24+A*10)-(WX(CC)+5+CO(2,A)/3,WY(CC)+32+A*10),PSET,7,B:NEXT
1320 SCREEN 1,1:IF PA=1 OR PA=3 THEN LINE(WX(WC)+9+CX*CC,WY(WC)+20+CY*CC)-(WX(WC)+8+CX*CC+CC,WY(WC)+19+CY*CC+CC),PSET,[CO(C1,0),CO(C1,1),CO(C1,2)],BF:GOTO *MAIN
1330 IF PA=4 THEN LINE(WX(WC)+9+CX*CC,WY(WC)+20+CY*CC)-(WX(WC)+8+CX*CC+CC,WY(WC)+19+CY*CC+CC),PASTEL,[CO(C1,0),CO(C1,1),CO(C1,2)],BF:GOTO *MAIN
1340 IF PA=2 THEN GOSUB *G2
1350 ELSE
1360 IF CCX>5 AND CCY>124 AND CCX<95 AND CCY<135 THEN LP=INT((CCX-5)/30)+1:C1Y=-(C1Y<240-LP*16)*C1Y-(C1Y>239-LP*16)*(240-LP*16):C1X=-(C1X<320-LP*16)*C1X-(C1X>319-LP*16)*(320-LP*16):GOSUB *表示:GOTO *MAIN
1370 IF CCX>95 AND CCX<125 AND CCY>124 AND CCY<135 THEN LL=LL+1:LL=-(LL<3)*LL:GOSUB *G2
1380 IF CCX>43 AND CCY>12 AND CCX<71 AND CCY<24 THEN C1Y=C1Y-LP*4:C1Y=-(C1Y>0)*C1Y:GOSUB *G2
1390 IF CCX<9 AND CCY>60 AND CCY<88 THEN C1X=C1X-LP*4:C1X=-(C1X>0)*C1X:GOSUB *G2
1400 IF CCX>43 AND CCY>116 AND CCX<71 AND CCY<124 THEN C1Y=C1Y+LP*4:C1Y=-(C1Y<240-LP*16)*C1Y-(C1Y>239-LP*16)*(240-LP*16):GOSUB *G2
1410 IF CCY>60 AND CCY<88 AND CCX>106 AND CCX<114 THEN C1X=C1X+LP*4:C1X=-(C1X<320-LP*16)*C1X-(C1X>319-LP*16)*(320-LP*16):GOSUB *G2
1420 ENDIF
1430 IF CCX>5 AND CCY>136 AND CCY<148 AND CCX<101 THEN
1440 CCX=INT((CCX-5)/12)+1:IF CCX>3 THEN LINE(WX(WC)+29+PA*12,WY(WC)+136)-(WX(WC)+40+PA*12,WY(WC)+147),XOR,7,BF:PA=INT(CCX-3):LINE(WX(WC)+29+PA*12,WY(WC)+136)-(WX(WC)+40+PA*12,WY(WC)+147),XOR,7,BF:GOTO *MAIN
1480 IF MOUSE(2,1)=-1 THEN MOUSE 4,0,0,319,239:GOTO *MAIN
1490 IF MOUSE(2,0)=0 THEN 1460
1500 IF CCX=2 THEN SCREEN 1,0:WINDOW(C1X,C1Y)-(C1X+LP*16-1,C1Y+LP*16-1):VIEW(C1X,C1Y)-(C1X+LP*16-1,C1Y+LP*16-1):PAINT@(C1X+CX,C1Y+CY),[CO(C1,0),CO(C1,1),CO(C1,2)]:WINDOW(0,0)-(319,239):VIEW(0,0)-(319,239):MOUSE 4,0,0,319,239:GOSUB *G2
1650 IF CCX>2 AND CCY>24 AND CCY<53 THEN CX=INT((CCX-3)/3)*9:CY=INT((CCY-24)/10) ELSE 1690
1660 IF CX>255 THEN CX=255
1670 CO(2,CY)=CX:LINE(WX(WC)+64,WY(WC)+14)-(WX(WC)+90,WY(WC)+22),PSET,0,BF,[CO(2,0),CO(2,1),CO(2,2)]:FOR A=0 TO 2:LINE(WX(WC)+2,WY(WC)+24+A*10)-(WX(WC)+91,WY(WC)+32+A*10),PSET,0,BF,3-A-(A=0):NEXT
1680 FOR A=0 TO 2:LINE(WX(WC)+2+CO(2,A)/3,WY(WC)+24+A*10)-(WX(WC)+5+CO(2,A)/3,WY(WC)+32+A*10),PSET,7,B:NEXT:GOTO *MAIN
1690 IF CCY>14 AND CCY<20 THEN
1700 IF CCX>68 AND CCX<96 THEN
1710 FOR A=0 TO 2:LINE(WX(WC)+2,WY(WC)+24+A*10)-(WX(WC)+91,WY(WC)+32+A*10),PSET,0,BF,3-A-(A=0):NEXT
1720 CO(2,0)=CO(C1,0):CO(2,1)=CO(C1,1):CO(2,2)=CO(C1,2):LINE(WX(WC)+64,WY(WC)+14)-(WX(WC)+90,WY(WC)+22),PSET,0,BF,[CO(2,0),CO(2,1),CO(2,2)]:FOR A=0 TO 2:LINE(WX(WC)+2+CO(2,A)/3,WY(WC)+24+A*10)-(WX(WC)+5+CO(2,A)/3,WY(WC)+32+A*10),PSET,7,B:NEXT:GOTO *MAIN
1730 ENDIF
1740 IF CCX>4 AND CCX<30 THEN CO(0,0)=CO(2,0):CO(0,1)=CO(2,1):CO(0,2)=CO(2,2):LINE(WX(WC)+4,WY(WC)+14)-(WX(WC)+30,WY(WC)+22),PSET,0,BF,[CO(0,0),CO(0,1),CO(0,2)]
1750 IF CCX>34 AND CCX<60 THEN CO(1,0)=CO(2,0):CO(1,1)=CO(2,1):CO(1,2)=CO(2,2):LINE(WX(WC)+34,WY(WC)+14)-(WX(WC)+60,WY(WC)+22),PSET,0,BF,[CO(1,0),CO(1,1),CO(1,2)]
2920 CX=INT(MOUSE(0)/SI)*SI:CY=INT(MOUSE(1)/SI)*SI:PUT@A(CX,CY)-(CX+CCX,CY+CCY),PIC,XOR:PUT@A(CX,CY)-(CX+CCX,CY+CCY),PIC,XOR:IF MOUSE(2,1)=-1 THEN 2750
2930 IF MOUSE(2,0)=0 THEN 2920
2940 IF QC=1 THEN PUT@A(CX,CY)-(CX+CCX,CY+CCY),PIC:GOTO 2920
2950 IF QC=2 THEN PUT@A(CX,CY)-(CX+CCX,CY+CCY),PIC,MATTE,,,[CO(0,0),CO(0,1),CO(0,2)]:GOTO 2920
2960 CX=MOUSE(0):CY=MOUSE(1):IF MOUSE(2,1)=-1 THEN 2750
2970 IF MOUSE(2,0)=0 THEN 2960
2980 IF QC=3 THEN PAINT@(CX,CY),[CO(C1,0),CO(C1,1),CO(C1,2)]:GOTO 2750
3200 CY=INT((MOUSE(1)-100)/13):IF MOUSE(2,1)=-1 THEN 2750
3210 IF MOUSE(2,0)=0 THEN 3200
3220 MOUSE 1,,,0:LINE(0,0)-(319,239),PSET,[0,0,0,1],BF:SCREEN 1,0:IF CY=1 THEN 3240
3230 FOR A=CCY TO 0 STEP -1:PUT@A(CHX,CHY+CCY-A)-(CHX+CCX,CHY+CCY-A),PIC,,,,,(CCX+1)*A:NEXT:GOTO 2750
3240 CC=CCY+1:FOR A=CCX TO 0 STEP -1:GET@A(CHX+A,CHY)-(CHX+A,CHY+CCY),PIC,(CCY+1)*CCX-CC*A:NEXT:FOR A=0 TO CCX:PUT@A(CHX+A,CHY)-(CHX+A,CHY+CCY),PIC,,,,,CC*A:NEXT:GOTO 2750
3250 *入替え
3260 MOUSE 1,,,0
3270 FOR A=CHX TO CHX+CCX:FOR C=CHY TO CHY+CCY
3280 C3=PEEK([&H1C]A*2+C*1024):C2=PEEK([&H1C]A*2+C*1024+1):B=INT(C3 AND 31)*8:G=((C2 AND 127)-(C2 AND 3))*2:R=INT((INT(C2 AND 3)*64+INT(C3/8)*2)/8)*8
3290 C1=G-CO(0,0):C2=R-CO(0,1):C3=B-CO(0,2):IF ABS(C1)<=OP(2) AND ABS(C2)<=OP(3) AND ABS(C3)<=OP(4) THEN
3300 IF OP(5)=0 THEN
3310 Y1=CO(1,0):Y2=CO(1,1):Y3=CO(1,2)
3320 ELSE
3330 Y1=CO(1,0)+C1:Y2=CO(1,1)+C2:Y3=CO(1,2)+C3:Y1=-(Y1<256 AND Y1>0)*Y1-(Y1>255)*255:Y2=-(Y2<256 AND Y2>0)*Y2-(Y2>255)*255:Y3=-(Y3<256 AND Y3>0)*Y3-(Y3>255)*255
3340 ENDIF
3350 PSET(A,C),[Y1,Y2,Y3]
3360 ENDIF
3370 NEXT:NEXT:GOTO 2750
3380 *字
3390 MOUSE 1,,,0:SCREEN 0:LINE INPUT C$:IF C$="" OR C$=CHR$(13) THEN 2750
3750 CX=MOUSE(0)-130:CY=MOUSE(1)-130:IF MOUSE(2,1)=-1 THEN 3810
3760 IF MOUSE(2,0)=0 THEN 3750
3770 IF CY<0 OR CY>19 OR CX<0 THEN 3750
3780 IF CX<20 THEN BA!=BA!-.1!:IF BA!<.1! THEN BA!=.1!
3790 IF CX>70 AND CX<90 THEN BA!=BA!+.1!
3800 GOTO 3740
3810 SCREEN 1,0:FOR A=CHX TO CHX+CCX:FOR C=CHY TO CHY+CCY:C3=PEEK([&H1C]A*2+C*1024):C2=PEEK([&H1C]A*2+C*1024+1):B=INT(C3 AND 31)*8:G=((C2 AND 127)-(C2 AND 3))*2:R=INT((INT(C2 AND 3)*64+INT(C3/8)*2)/8)*8
3960 MOUSE 1,,,0:FOR A=CHX TO CHX+CCX:FOR C=CHY TO CHY+CCY:C3=PEEK([&H1C]A*2+C*1024):C2=PEEK([&H1C]A*2+C*1024+1):B=INT(C3 AND 31):G=((C2 AND 127)-(C2 AND 3)):R=INT((INT(C2 AND 3)*64+INT(C3/8)*2)/8)
3970 IF B=0 AND G=0 AND R=0 THEN PSET(A,C),[0,0,0,1]